Business Process Execution Language (BPEL) is an industry specification for describing business processes. BPEL is a conversational-based system, this means that if two partners are communicating, they have to know what they are communicating about. Thus unsolicited messages are not supported, partners can only receive messages for which they are waiting. A BPEL process can be initiated via a message as well as receive messages after it is initiated. A BPEL engine determines if an incoming message is to either instantiate an instance or be routed to an existing instance by looking at the operation name. Therefore a process cannot have an initial receive and a mid-process receive using the same operation.